#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：9.__iter__与__next__具体使用方法.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-10-25 10:16
'''

class ListNode:
    def __init__(self):
        self.index = 0
        self.stu_list = list()

    # 如果一个类的内部定义了__iter__方法，那么创建出来的实例一定是一个迭代对象
    def __iter__(self):
        return self

    # 如果一个类的内部定义了__next__方法，那么创建出来的实例一定是一个迭代器
    def __next__(self):
        if self.index < len(self.stu_list):
            item = self.stu_list[self.index]
            self.index+= 1
            return item
        else:
            raise StopIteration
        pass

    def add(self, name):
        self.stu_list.append(name)

list_node = ListNode()
list_node.add("安娜")
list_node.add("双双")
list_node.add("张三")

for stu in list_node:
    print(stu)

